﻿Imports DevComponents.DotNetBar

Public Class FrmCapturaAlmacen

    Private Sub FrmCapturaAlmacen_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Try
            Me.CtCITRAAUSL2012DataSet.EnforceConstraints = False
            'TODO: esta línea de código carga datos en la tabla 'DataSet_Prod_Serv.Empresas' Puede moverla o quitarla según sea necesario.
            Me.EmpleadosTableAdapter.Fill_NombreID(Me.CtCITRAAUSL2012DataSet.Empleados)

            Cargar_Form()
            'Todo esto son los colores de los controles que por alguna razón no los toma en sus propiedades del diseñador ಥ_ಥ 
            Me.BackColor = StyleManager1.MetroColorParameters.CanvasColor
            lblNombre.ForeColor = SystemColors.MenuHighlight 'Los controles no cambian su foreColor por alguna extraña razón ಥ_ಥ
            txtNombre.BackColor = StyleManager1.MetroColorParameters.CanvasColor
            txtCodigo.BackColor = StyleManager1.MetroColorParameters.CanvasColor
            txtSegmento.BackColor = StyleManager1.MetroColorParameters.CanvasColor
            txtDescripcion.BackColor = StyleManager1.MetroColorParameters.CanvasColor
            cbEmpresa.BackColor = StyleManager1.MetroColorParameters.CanvasColor
            cbMetodo.BackColor = StyleManager1.MetroColorParameters.CanvasColor
            cbPersonal.BackColor = StyleManager1.MetroColorParameters.CanvasColor
            slideOpciones.BackColor = Color.Black
            panelOpciones.BackColor = Color.Black

        Catch ex As Exception
            ToastNotification.Show(Me, ex.Message, My.Resources.appbar_cone, 5000, eToastGlowColor.Red, eToastPosition.MiddleCenter)
        End Try
    End Sub

    Public Sub Cargar_Form()
        Try
            'TODO: esta línea de código carga datos en la tabla 'DataSet_Prod_Serv.Empresas' Puede moverla o quitarla según sea necesario.
            Me.EmpresasTableAdapter.Fill(Me.DataSet_Prod_Serv.Empresas)
            'TODO: esta línea de código carga datos en la tabla 'DataSet_Prod_Serv.Almacenes' Puede moverla o quitarla según sea necesario.
            Me.AlmacenesTableAdapter.Fill(Me.DataSet_Prod_Serv.Almacenes)
            cbMetodo.SelectedIndex = 0

            For Each fila As DataGridViewRow In dgvAlmacenes.Rows
                Me.dgvAlmacenes.Rows(fila.Index).Cells(9).Value = empresa.RazonSocial(Me.dgvAlmacenes.Rows(fila.Index).Cells(1).Value)
                Me.dgvAlmacenes.Rows(fila.Index).Cells(10).Value = empleado.NombreCompleto(Me.dgvAlmacenes.Rows(fila.Index).Cells(2).Value)
            Next
            dgvAlmacenes.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells)
        Catch ex As Exception
            ToastNotification.Show(Me, ex.Message, My.Resources.appbar_cone, 5000, eToastGlowColor.Red, eToastPosition.MiddleCenter)
        End Try
    End Sub

    Private Sub AtrasBtn_Click(sender As Object, e As EventArgs) Handles AtrasBtn.Click
        FrmMain.Show()
        _EnTarea = False
        _Editar = False
        Me.Close()
    End Sub

    Private Sub btnMostrarOpciones_Click(sender As Object, e As EventArgs) Handles btnMostrarOpciones.Click
        slideOpciones.IsOpen = True
    End Sub

    Private Sub ButtonItem1_Click(sender As Object, e As EventArgs) Handles ButtonItem1.Click
        slideOpciones.IsOpen = False
    End Sub

    Private Sub txt_Enter(sender As Object, e As EventArgs) Handles txtCodigo.Enter, txtNombre.Enter, txtDescripcion.EnabledChanged, txtSegmento.Enter
        Dim txt As DevComponents.DotNetBar.Controls.TextBoxX = DirectCast(sender, DevComponents.DotNetBar.Controls.TextBoxX)
        txt.Border.BorderColor2 = SystemColors.MenuHighlight
    End Sub

    Private Sub txtCodigo_Leave(sender As Object, e As EventArgs) Handles txtCodigo.Leave, txtNombre.Leave, txtDescripcion.Leave, txtSegmento.Leave
        Dim txt As DevComponents.DotNetBar.Controls.TextBoxX = DirectCast(sender, DevComponents.DotNetBar.Controls.TextBoxX)
        txt.Border.BorderColor2 = Nothing
    End Sub

    Private Sub txt_TextChanged(sender As Object, e As EventArgs) Handles txtCodigo.TextChanged, txtNombre.TextChanged, txtDescripcion.TextChanged, txtSegmento.TextChanged
        Dim txt As DevComponents.DotNetBar.Controls.TextBoxX = DirectCast(sender, DevComponents.DotNetBar.Controls.TextBoxX)
        If txt Is txtCodigo Then
            If txt.Text <> "" Then
                lbCodigo.Visible = True
            Else
                lbCodigo.Visible = False
            End If
        End If
        If txt Is txtNombre Then
            If txt.Text <> "" Then
                lbNombre.Visible = True
            Else
                lbNombre.Visible = False
            End If
        End If
        If txt Is txtDescripcion Then
            If txt.Text <> "" Then
                lbDescripcion.Visible = True
            Else
                lbDescripcion.Visible = False
            End If
        End If
        If txt Is txtSegmento Then
            If txt.Text <> "" Then
                lbSegmento.Visible = True
            Else
                lbSegmento.Visible = False
            End If
        End If
    End Sub

    Private Sub btnCancelar_Click(sender As Object, e As EventArgs) Handles btnCancelar.Click
        Me.Close()
    End Sub

    Public Sub Limpia_Todo()
        Try
            For Each ctrl As Control In Me.Controls
                If TypeOf ctrl Is DevComponents.DotNetBar.Controls.TextBoxX Then
                    CType(ctrl, DevComponents.DotNetBar.Controls.TextBoxX).Text = String.Empty
                ElseIf TypeOf ctrl Is DevComponents.DotNetBar.Controls.ComboBoxEx Then
                    CType(ctrl, DevComponents.DotNetBar.Controls.ComboBoxEx).SelectedIndex = 0
                End If
            Next
        Catch
        End Try
    End Sub

    Private Sub btnAgregar_Click(sender As Object, e As EventArgs) Handles btnAgregar.Click
        Try
            If txtCodigo.Text = "" Or txtNombre.Text = "" Then
                ToastNotification.Show(Me, "Debe de capturar cuando menos el nombre y codigo del almacen.", My.Resources.appbar_cone, 5000, eToastGlowColor.Red, eToastPosition.MiddleCenter)
                Exit Sub
            End If
            If almacen.CodNom_Existente(txtNombre.Text, txtCodigo.Text) > 0 Then
                ToastNotification.Show(Me, "El nombre o/y codigo ya existen.", My.Resources.appbar_cone, 5000, eToastGlowColor.Red, eToastPosition.MiddleCenter)
                Exit Sub
            End If
            If personal.Buscar_Personal_IDEMPLEADO(cbPersonal.SelectedValue) Is Nothing Then
                personal.Insert(cbPersonal.SelectedValue, cbPersonal.SelectedValue, 2)
            End If
            Dim id_personal As Integer = personal.Buscar_Personal_IDEMPLEADO(cbPersonal.SelectedValue)
            If _Editar = False Then
                almacen.Insert(cbEmpresa.SelectedValue, id_personal, txtCodigo.Text.Trim, txtNombre.Text, txtDescripcion.Text, cbMetodo.SelectedIndex, _
                               IIf(swStatus.Value, "ACTIVA", "INACTIVA"), txtSegmento.Text.Trim)
                ToastNotification.Show(Me, "Capturado con exito", My.Resources.add2, 4000, eToastGlowColor.Blue, eToastPosition.TopCenter)
                Cargar_Form()
            End If
        Catch ex As Exception
            ToastNotification.Show(Me, ex.Message, My.Resources.appbar_cone, 5000, eToastGlowColor.Red, eToastPosition.MiddleCenter)
        End Try
    End Sub

    Private Sub dgvAlmacenes_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvAlmacenes.CellDoubleClick
        Try
            _IDALMACEN = Me.dgvAlmacenes.CurrentRow.Cells(0).Value
            cbEmpresa.SelectedValue = Me.dgvAlmacenes.CurrentRow.Cells(1).Value
            cbPersonal.SelectedValue = personal.Buscar_Empleado_IDPERSONAL(Me.dgvAlmacenes.CurrentRow.Cells(2).Value)
            txtCodigo.Text = Me.dgvAlmacenes.CurrentRow.Cells(3).Value
            txtNombre.Text = Me.dgvAlmacenes.CurrentRow.Cells(4).Value
            txtDescripcion.Text = Me.dgvAlmacenes.CurrentRow.Cells(5).Value
            cbMetodo.SelectedIndex = Me.dgvAlmacenes.CurrentRow.Cells(6).Value
            If Me.dgvAlmacenes.CurrentRow.Cells(7).Value = "ACTIVA" Then
                swStatus.Value = True
            Else
                swStatus.Value = False
            End If
            txtSegmento.Text = Me.dgvAlmacenes.CurrentRow.Cells(8).Value
        Catch ex As Exception
            ToastNotification.Show(Me, ex.Message, My.Resources.appbar_cone, 5000, eToastGlowColor.Red, eToastPosition.MiddleCenter)
        End Try
    End Sub

    Private Sub btnActualizar_Click(sender As Object, e As EventArgs) Handles btnActualizar.Click
        If _IDALMACEN > 0 Then
            If MessageBoxEx.Show("La acción sera definitiva, ¿desea continuar?", "Atención", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) = Windows.Forms.DialogResult.Cancel Then
                Exit Sub
            Else
                Try
                    If txtCodigo.Text = "" Or txtNombre.Text = "" Then
                        ToastNotification.Show(Me, "Debe de capturar cuando menos el nombre y codigo del almacen.", My.Resources.appbar_cone, 5000, eToastGlowColor.Red, eToastPosition.MiddleCenter)
                        Exit Sub
                    End If
                    If personal.Buscar_Personal_IDEMPLEADO(cbPersonal.SelectedValue) Is Nothing Then
                        personal.Insert(cbPersonal.SelectedValue, cbPersonal.SelectedValue, 2)
                    End If
                    Dim id_personal As Integer = personal.Buscar_Personal_IDEMPLEADO(cbPersonal.SelectedValue)
                    almacen.Update(cbEmpresa.SelectedValue, id_personal, txtCodigo.Text.Trim, txtNombre.Text, txtDescripcion.Text, cbMetodo.SelectedIndex, _
                                   IIf(swStatus.Value, "ACTIVA", "INACTIVA"), txtSegmento.Text.Trim, _IDALMACEN)
                    ToastNotification.Show(Me, "Actualizado con exito", My.Resources.add1, 4000, eToastGlowColor.Blue, eToastPosition.TopCenter)
                    Cargar_Form()
                Catch ex As Exception
                    ToastNotification.Show(Me, ex.Message, My.Resources.appbar_cone, 5000, eToastGlowColor.Red, eToastPosition.MiddleCenter)
                End Try
            End If
        Else
            ToastNotification.Show(Me, "Debe de dar doble click a la categoria que desea actualizar.", My.Resources.appbar_cone, 5000, eToastGlowColor.Red, eToastPosition.MiddleCenter)
        End If
    End Sub
End Class